package com.sweet.date;

import java.util.TimeZone;

/**
 * 时区工具
 *
 * @author limi
 * @date 2019/5/24 15:03
 */
public class TimeZoneUtil {
    /**
     * 获取默认时区
     *
     * @return
     */
    public static TimeZone getTimeZone() {
        return TimeZone.getDefault();
    }

    /**
     * 获取时区
     *
     * @param zone 时区，如8=GMT+8,-8=GMT-8
     * @return
     */
    public static TimeZone getTimeZone(int zone) {
        //此处仅支持GMT时区或全称
        return TimeZone.getTimeZone(zone > 0 ? "GMT+" + zone : "GMT" + zone);
    }

    /**
     * 获取时区
     *
     * @param id 仅支持CST时区全称，或GMT时区，详情可查看getTimeZone函数定义
     * @return
     */
    public static TimeZone getTimeZone(String id) {
        return TimeZone.getTimeZone(id);
    }

    /**
     * 获取当前时区,距离UTC标准时区小时数
     *
     * @return
     */
    public static int getHours() {
        return getHours(TimeZone.getDefault());
    }

    /**
     * 获取指定时区,距离UTC标准时区小时数
     *
     * @return
     */
    public static int getHours(TimeZone timeZone) {
        return timeZone.getRawOffset() / 60 / 60 / 1000;
    }

    /**
     * 是否是相同时区
     *
     * @param one
     * @param two
     * @return
     */
    public static boolean isSame(TimeZone one, TimeZone two) {
        return one.getRawOffset() == two.getRawOffset();
    }
}